// 空间优化
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 510;

int n;
int f[N][N];

void add(int c[], int b[])
{
	for(int i = 0;i < N - 1;i ++)
	{
		c[i] += b[i];
		c[i + 1] += c[i] / 10;
		c[i] %= 10;
	}
}

int main()
{
	cin >> n;
	for(int i = 0;i <= n;i ++)
	{
		f[0][0] = 1;
		for(int j = 1;j <= i;j ++)
		{
			add(f[j], f[j - 1]);
		}
	}
	int t = N - 1;
	while(f[n][t] == 0) t --;
	while(t >= 0) cout << f[n][t --];
	return 0;
}




// #include <bits/stdc++.h>
// using namespace std;
// typedef long long LL;
// const int N = 510;

// int n;
// int f[N][N][N];

// void add(int c[], int a[], int b[])
// {
// 	for(int i = 0;i < N - 1;i ++)
// 	{
// 		c[i] += a[i] + b[i];
// 		c[i + 1] += c[i] / 10;
// 		c[i] %= 10;
// 	}
// }

// int main()
// {
// 	cin >> n;
// 	for(int i = 0;i <= n;i ++)
// 	{
// 		f[i][0][0] = 1;
// 		for(int j = 1;j <= i;j ++)
// 		{
// 			add(f[i][j], f[i - 1][j], f[i][j - 1]);
// 		}
// 	}
// 	int t = N - 1;
// 	while(f[n][n][t] == 0) t --;
// 	while(t >= 0) cout << f[n][n][t --];
// 	return 0;
// }